package sismed.gui.comando;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sismed.exception.DAOException;
import sismed.negocio.fachada.Fachada;
import sismed.negocio.modelo.Exame;
import sismed.negocio.modelo.ExameParasitologico;
import sismed.negocio.modelo.ResultadoHelmintos;
import sismed.negocio.modelo.ResultadoProtozoario;

public class ComandoCadastrarResExameParasitologico extends ComandoGenerico {

	@Override
	public void executar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		if(request.getSession().getAttribute("tipoUsuario").equals(null))				
			response.sendRedirect("login.jsp");
		else {
			Fachada fachada = Fachada.getInstance();
			String id = request.getParameter("idExame");
			Exame exame = null;
			try {
				exame = (ExameParasitologico) fachada.recuperarExame(id );
			} catch (DAOException e1) {
				e1.printStackTrace();
			}
			
			ResultadoProtozoario resultadoProtozoario = new ResultadoProtozoario();
			ResultadoHelmintos resultadoHelmintos =  new ResultadoHelmintos();
			
			String eColi = request.getParameter( "ecoli" );
			if( eColi != null ) resultadoProtozoario.setEcoli(true);
			else resultadoProtozoario.setEcoli( false );
			
			
			String eHistolytica = request.getParameter( "ehistolytica" );
			if( eHistolytica != null ) resultadoProtozoario.setEhistolytica(true);
			else resultadoProtozoario.setEhistolytica( false );
			
			
			String endolimaxNana = request.getParameter( "endolimaxNana" );
			if( endolimaxNana != null ) resultadoProtozoario.setEndolimaxNana( true );
			else resultadoProtozoario.setEndolimaxNana( false );
			
			
			String giardiaLambia = request.getParameter( "giardiaLambia" );
			if( giardiaLambia != null ) resultadoProtozoario.setGiardiaLambia( true );
			else resultadoProtozoario.setGiardiaLambia( false );
			
			
			String iodamoebaButschlli = request.getParameter( "iodamoebaButschlli" );
			if( iodamoebaButschlli != null ) resultadoProtozoario.setIodamoebaButschlli( true );
			else resultadoProtozoario.setIodamoebaButschlli( false );
			
			
			String ausentesProtozoario = request.getParameter( "ausentesProtozoario" );
			if( ausentesProtozoario != null ) resultadoProtozoario.setAusentes( true );
			else resultadoProtozoario.setAusentes( false );
			
			
			String ancilostomideos = request.getParameter( "ancilostomideos" );
			if( ancilostomideos != null ) resultadoHelmintos.setAncilostomideos( true );
			else resultadoHelmintos.setAncilostomideos( false );
			
			
			String ascarisLumbricoides = request.getParameter( "ascarisLumbricoides" );
			if( ascarisLumbricoides != null ) resultadoHelmintos.setAscarisLumbricoides( true );
			else resultadoHelmintos.setAscarisLumbricoides( false );
			
			
			String enterobiosVermicularis = request.getParameter( "enterobiosVermicularis" );
			if( enterobiosVermicularis != null ) resultadoHelmintos.setEnterobiosVermicularis( true );
			else resultadoHelmintos.setEnterobiosVermicularis( false );
			
			
			String schistsomaMansoni = request.getParameter( "schistsomaMansoni" );
			if( schistsomaMansoni != null ) resultadoHelmintos.setSchistsomaMansoni( true );
			else resultadoHelmintos.setSchistsomaMansoni( false );
			
			
			String sEstercolaris = request.getParameter( "sEstercolaris" );
			if( sEstercolaris != null ) resultadoHelmintos.setSEstercolaris( true );
			else resultadoHelmintos.setSEstercolaris( false );
			
			
			String taeniaSP = request.getParameter( "taeniaSP" );
			if( taeniaSP != null ) resultadoHelmintos.setTaeniaSP( true );
			else resultadoHelmintos.setTaeniaSP(  false );
			
			
			String trichiurisTrichiura = request.getParameter( "trichiurisTrichiura" );
			if( trichiurisTrichiura != null ) resultadoHelmintos.setTrichiurisTrichiura( true );
			else resultadoHelmintos.setTrichiurisTrichiura( false );
			
			
//			String ausentesHelmintos = request.getParameter( "ausentesHelmintos" );
//			if( ausentesHelmintos != null ) resultadoHelmintos.setAusentes( true );
//			else resultadoHelmintos.setAusentes( false );
			
			
			((ExameParasitologico)exame).setResultadoHelmintos(resultadoHelmintos);
			((ExameParasitologico)exame).setResultadoProtozoario(resultadoProtozoario);
			
			String metodoBaermann = request.getParameter( "metodoBaermann" );
			String pesquisas = request.getParameter( "pesquisas" );
			String sangueOculto = request.getParameter( "sangueOculto" );
			String trofozoitas = request.getParameter( "trofozoitas" ); 
			String gorduraFecal = request.getParameter( "gorduraFecal" );
			String leucocitos = request.getParameter( "leucocitos" );
			String observacao = request.getParameter( "observacao" );
			String dia = request.getParameter( "dia" );
			String mes = request.getParameter( "mes" );
			String ano = request.getParameter( "ano" );
		
			((ExameParasitologico)exame).setMetodoBaermann(metodoBaermann);
			((ExameParasitologico)exame).setPesquisas(pesquisas);
			((ExameParasitologico)exame).setSangueOculto(sangueOculto);
			((ExameParasitologico)exame).setTrofozoitas(trofozoitas);
			((ExameParasitologico)exame).setGorduraFecal(gorduraFecal);
			((ExameParasitologico)exame).setLeucocitos(leucocitos);
			((ExameParasitologico)exame).setObservacao(observacao);
			((ExameParasitologico)exame).setDataRealizacao( dia + "/" + mes + "/" + ano );
			
			((ExameParasitologico)exame).setRealizado(true);
			try {
				fachada.atualizarExame( exame ); 		
				request.setAttribute("msgsucesso", "Resultado cadastrado com sucesso.");
				request.getRequestDispatcher("sucesso.jsp").forward(request, response);
			} 
			catch ( DAOException e )  {
				e.printStackTrace();
				request.setAttribute("msgerro", e.getMessage());		
				request.getRequestDispatcher("erro.jsp").forward(request, response);
			}
		}
	}
}
